/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package PanelesDeTrabajo;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.miginfocom.swing.MigLayout;
import sun.management.snmp.util.MibLogger;

/**
 *
 * @author hp
 */
public class PanelInformes extends JPanel implements ActionListener, ChangeListener
{
    private JPanel panelDia;
    private JPanel panelPeriodo;
    private JPanel panelRanking;
    private JCheckBox boxVentasDia;
    private JCheckBox boxVentasPeriodo;
    private JCheckBox boxRankingPlatosPedidos;
    private JCheckBox boxRankingProductosPedidos;
    private JCheckBox boxRankingMenusPedidos;
    private JCheckBox boxIngredientesPorDia;
    private JCheckBox boxIngredientesPorPeriodo;
    private JCheckBox boxDesayunosPorDia;
    private JCheckBox boxDesayunosPorPeriodo;
    private JCheckBox boxAlmuerzosPorDia;
    private JCheckBox boxAlmuerzosPeriodo;
    private JCheckBox boxCenasPorDia;
    private JCheckBox boxCenasPeriodo;
    private JButton generarPdfDia;
    private JButton generarPdfPeriodo;
    private JButton generarPdfRanking;
    private String[] arrayDia;
    private String[] arrayPeriodo;
    private String[] arrayRanking;
    
    public PanelInformes()
    {
        this.setLayout(new GridLayout(1,3));
        this.panelDia = new JPanel(new MigLayout());
        this.panelPeriodo = new JPanel(new MigLayout());
        this.panelRanking = new JPanel(new MigLayout());
        
        JLabel labelDia = new JLabel("Ventas por día:");
        JLabel labelPeriodo = new JLabel("Ventas por período:");
        JLabel labelRanking = new JLabel("Ranking de:");
        
        this.boxVentasDia = new JCheckBox("Ventas por día");
        this.boxVentasPeriodo = new JCheckBox("Ventas por período");
        this.boxRankingPlatosPedidos = new JCheckBox("Ranking platos pedidos");
        this.boxRankingProductosPedidos = new JCheckBox("Ranking productos pedidos");
        this.boxRankingMenusPedidos = new JCheckBox("Ranking menús pedidos");
        this.boxIngredientesPorDia = new JCheckBox("Ingredientes por día");
        this.boxIngredientesPorPeriodo = new JCheckBox("Ingredientes por período");
        this.boxDesayunosPorDia = new JCheckBox("Desayunos por día");
        this.boxDesayunosPorPeriodo = new JCheckBox("Desayunos por período");
        this.boxAlmuerzosPorDia = new JCheckBox("Almuerzos por día");
        this.boxAlmuerzosPeriodo = new JCheckBox("Almuerzos por período");
        this.boxCenasPorDia = new JCheckBox("Cenas por día");
        this.boxCenasPeriodo = new JCheckBox("Cenas por período");
        
        this.generarPdfDia = new JButton("Generar PDF");
        this.generarPdfPeriodo = new JButton("Generar PDF");
        this.generarPdfRanking = new JButton("General PDF");
        
        this.arrayDia = new String[5]; //Opciones de checkbox quedan guardadas como si y no
        this.arrayPeriodo = new String[5];
        this.arrayRanking = new String[3];
        
        this.panelDia.add(labelDia, "wrap");
        this.panelDia.add(boxVentasDia, "wrap");
        this.panelDia.add(boxIngredientesPorDia, "wrap");
        this.panelDia.add(boxDesayunosPorDia, "wrap");
        this.panelDia.add(boxAlmuerzosPorDia, "wrap");
        this.panelDia.add(boxCenasPorDia, "wrap");
        
        this.panelPeriodo.add(labelPeriodo, "wrap");
        this.panelPeriodo.add(boxVentasPeriodo, "wrap");
        this.panelPeriodo.add(boxIngredientesPorPeriodo, "wrap");
        this.panelPeriodo.add(boxDesayunosPorPeriodo, "wrap");
        this.panelPeriodo.add(boxAlmuerzosPeriodo, "wrap");
        this.panelPeriodo.add(boxCenasPeriodo, "wrap");
        
        this.panelRanking.add(labelRanking, "wrap");
        this.panelRanking.add(boxRankingPlatosPedidos, "wrap");
        this.panelRanking.add(boxRankingProductosPedidos,"wrap");
        this.panelRanking.add(boxRankingMenusPedidos, "wrap");
        
        this.panelDia.add(generarPdfDia, "wrap");
        this.panelPeriodo.add(generarPdfPeriodo, "wrap");
        this.panelRanking.add(generarPdfRanking, "wrap");
        
        this.generarPdfDia.addActionListener(this);
        this.generarPdfPeriodo.addActionListener(this);
        this.generarPdfRanking.addActionListener(this);
        
        this.boxVentasDia.addChangeListener(this);
        this.boxVentasPeriodo.addChangeListener(this);
        this.boxRankingPlatosPedidos.addChangeListener(this);
        this.boxRankingProductosPedidos.addChangeListener(this);
        this.boxRankingMenusPedidos.addChangeListener(this);
        this.boxIngredientesPorDia.addChangeListener(this);
        this.boxIngredientesPorPeriodo.addChangeListener(this);
        this.boxDesayunosPorDia.addChangeListener(this);
        this.boxDesayunosPorPeriodo.addChangeListener(this);
        this.boxAlmuerzosPorDia.addChangeListener(this);
        this.boxAlmuerzosPeriodo.addChangeListener(this);
        this.boxCenasPorDia.addChangeListener(this);
        this.boxCenasPeriodo.addChangeListener(this);
        
        this.add(panelDia);
        this.add(panelPeriodo);
        this.add(panelRanking);
        
        //LO QUE ES POR PERIODO..USAR CALENDARIO
        
    }

    @Override
    public void actionPerformed(ActionEvent e) 
    {
        Object click = e.getSource();
        
        if (click == generarPdfDia)
        {
//            decisionCrearPDF(arrayDia[0]);
//            decisionCrearPDF(arrayDia[1]);
//            decisionCrearPDF(arrayDia[2]);
//            decisionCrearPDF(arrayDia[3]);
//            decisionCrearPDF(arrayDia[4]);
        }
        if (click == generarPdfPeriodo)
        {
            
        }
        if (click == generarPdfRanking)
        {
            
        }
    }

    @Override
    public void stateChanged(ChangeEvent e) 
    {
        if (boxVentasDia.isSelected())
        {
            arrayDia[0] = "ventasDia";
        }
        else
        {
            arrayDia[0] = null;
        }
        if (boxIngredientesPorDia.isSelected())
        {
            arrayDia[1] = "ingredientesDia";
        }
        else
        {
            arrayDia[1] = null;
        }
        if (boxDesayunosPorDia.isSelected())
        {
            arrayDia[2] = "desayunosDia";
        }
        else
        {
            arrayDia[2] = null;
        }
        if (boxAlmuerzosPorDia.isSelected())
        {
            arrayDia[3] = "almuerzosDia";
        }
        else
        {
            arrayDia[3] = null;
        }
        if (boxCenasPorDia.isSelected())
        {
            arrayDia[4] = "cenasDia";
        }
        else
        {
            arrayDia[4] = null;
        }
    }
    
    public void decisionCrearPDF(String clasificacion) //Segun lo tickeado, creamos su pdf correspondiente
    {
        if (clasificacion.equals("dia"))
        {
            for (int i=0; i<arrayDia.length; i++)
            {
                if (arrayDia[0].equals("ventasDia"))
                {
                    System.out.println("pdf ventas por dia");
                    ventasDiaPDF();
                }
                if (arrayDia[1].equals("ingredientesDia"))
                {
                    System.out.println("pdf ingredientes por dia");
                }
                if (arrayDia[2].equals("desayunosDia"))
                {
                    
                }
                if (arrayDia[3].equals("almuerzosDia"))
                {
                    
                }
                if (arrayDia[4].equals("cenasDia"))
                {
                    
                }
            }
        }
    }
    
    public void ventasDiaPDF()
    {
        
    }
}
